<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>sd_fec: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">sd_fec
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li class="current"><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('index.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">sd_fec Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>SD-FEC standalone driver software API summary </p>
<h1><a class="anchor" id="sec_init"></a>
Initialization and Configuration</h1>
<p>The <a class="el" href="struct_x_sd_fec___config.html" title="Device configuration. ">XSdFec_Config</a> structure is used by the driver to configure the FEC mode and interface parameters defined for each SD-FEC device. The configuration structure is created by the tool-chain based on HW build properties.</p>
<p>To support multiple runtime loading and initialization strategies employed by various operating systems, the driver instance can be initialized in one of two ways:</p>
<ul>
<li>XSdFecInitialize(InstancePtr, DeviceId) - The driver looks up its own configuration structure created by the tool-chain based on an ID provided by the tool-chain.</li>
<li>XSdFecCfgInitialize(InstancePtr, CfgPtr) - Uses a configuration structure provided by the caller.</li>
</ul>
<h1><a class="anchor" id="sec_data"></a>
Data Structures</h1>
<p>One or more device specific headers are produced during the generation of the board support package, defining further device specific configuration parameters:</p>
<ul>
<li>When the device is configured for Turbo Decode, the header x&lt;ipinst_name&gt;_turbo_params.h, contains an XSdFecturbo_parameters structure which is populated to match the corresponding IP GUI configuration.</li>
<li>When the device is configured for LDPC a header is generated per LDPC code specified on the corresponding IP GUI; x&lt;ipinst_name &gt;_&lt;code_id&gt;_params.h. Each header defines an XSdFecldpc_parameters structure populated with the configuration data required for the corresponding LDPC code.</li>
</ul>
<h1><a class="anchor" id="sec_api"></a>
API</h1>
<p>The driver provides the following functions:</p>
<ul>
<li>XSdFecSetTurboParams(InstancePtr, ParamsPtr) - Set Turbo parameters on a device</li>
<li>XSdFecadd_ldpc_params(InstancePtr, CodeId, SCOffset, LAOffset, QCOffset, ParamsPtr) - Add LDPC parameters to a device</li>
<li>XSdFecShareTableSize(ParamsPtr, SCSizePtr, LASizePtr, QCSizePtr) - Calculate share table size for a LDPC code</li>
<li>XSdFecInterruptClassifier(InstancePtr) - Classify interrupts</li>
</ul>
<p>In addition, the driver provides set and get functions for all the individual registers defined for the SD-FEC.</p>
<h1><a class="anchor" id="sec_ex"></a>
Example</h1>
<p>The processor based example design output by the SD-FEC IP instance also includes an example application demonstrating a basic use case of the software driver. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
